package evemanutool.gui.corp; import java.awt.GridLayout; import javax.swing.BorderFactory; import javax.swing.JPanel; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import evemanutool.data.display.POS; import evemanutool.gui.corp.components.POSDetailsPanel; import evemanutool.gui.corp.components.POSModel; import evemanutool.gui.general.tabel.ScrollableTablePanel; import evemanutool.utils.databases.CorpApiDB; import evemanutool.utils.datahandling.GUIUpdater; @SuppressWarnings("serial") public class POSPanel extends JPanel implements GUIUpdater { //DB:s private CorpApiDB cdb; //Internal panels. private ScrollableTablePanel<POS> posPanel; private POSDetailsPanel posDetailsPanel; public POSPanel(CorpApiDB cdb) { //Set DB refs. this.cdb = cdb; //Main layout. setLayout(new GridLayout(1, 2)); posPanel = new ScrollableTablePanel<>(new POSModel()); posPanel.setBorder(BorderFactory.createTitledBorder("Starbases")); posPanel.getTable().getSelectionModel().addListSelectionListener(new SelectionListener()); //Create details panel. posDetailsPanel = new POSDetailsPanel(); posDetailsPanel.setBorder(BorderFactory.createTitledBorder("Details")); //Add top level components. add(posPanel); add(posDetailsPanel); } @Override public void updateGUI(){ //POS list. posPanel.setData(cdb.getPosList()); } private class SelectionListener implements ListSelectionListener { @Override public void valueChanged(ListSelectionEvent e) { //Sets the selected quote from the showed list (Not the complete). if (!e.getValueIsAdjusting() && posPanel.getTable().getSelectedRow() >= 0 && posPanel.getTable().getSelectedRow() < posPanel.getModel().size()) { //Get the selected quote. POS selectedPos = posPanel.getModel().getDataAt(posPanel.getSorter().convertRowIndexToModel(posPanel.getTable().getSelectedRow())); //Show quick info. posDetailsPanel.setPOS(selectedPos); } } } }